Design of large or complex electronic circuits such as the integrated circuits found in computers, consumer electronics devices, and other such electronic devices is almost universally done using computerized design software. The design software enables the designer to represent various components such as logic gates, registers, and switches using elements representing these functions in the design software, reducing the need for the designer to work with each individual transistor or other element that makes up these standard logic elements.
Hardware Description Languages (HDLs) such as VHDL (Very High Speed Integrated Circuit HDL) provide not only design and layout functionality, but often can simulate operation of a circuit as well. Clocked logic circuits having clocks that define when each element such as a register or latch reads and evaluates input signals can be simulated by stepping through time using discrete clock cycles and tracking the flow of data between elements and operation of the interconnected logic elements at each clock cycle, providing a way to test and optimize designs before building the actual circuitry.
Such clocked, or synchronous circuits, are the building blocks upon which many digital electronic devices are constructed. But, factors such as clock management and skew, power consumption, speed limited by an element's slowest possible function, and other challenges with synchronous circuit design have renewed an interest in asynchronous circuits, which can operate more efficiently in many applications.
Asynchronous circuits do not operate based in the time domain, or on fixed clock timing, but operate in the event domain and are triggered by observation of events. When updated input data is received in an asynchronous digital logic circuit element, the receiving element can update its state based on the input without waiting for a clock. More complex asynchronous logic elements are further able to receive a control signal requesting an action be performed, and send a confirmation that the action is complete. This enables event signals to be passed between asynchronous circuit elements, in addition to the logic data upon which the elements operate.
Asynchronous circuits can also be used to implement circuits originally designed using synchronous circuit elements, by conversion of synchronous to asynchronous elements such as is described in greater detail in “Systems and Methods for Performing Automated Conversion of Representations of Synchronous Circuit Designs To and From Representations of Asynchronous Circuit Designs”, pending as U.S. patent application no. US2007/0256038. But, significant challenges remain, including how to most efficiently process data within the asynchronous circuit architecture replacing the original synchronous circuit.